<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IRremoteESP8266: src/ir_Airwell.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">IRremoteESP8266
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">ir_Airwell.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="ir__Airwell_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Copyright 2020 David Conran</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// Supports:</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">//   Brand: Airwell,  Model: RC08W remote</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//   Brand: Airwell,  Model: RC04 remote</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">//   Brand: Airwell,  Model: DLS 21 DCI R410 AW A/C</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifndef IR_AIRWELL_H_</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#define IR_AIRWELL_H_</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define __STDC_LIMIT_MACROS</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef UNIT_TEST</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;Arduino.h&gt;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IRremoteESP8266_8h.html">IRremoteESP8266.h</a>&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IRsend_8h.html">IRsend.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#ifdef UNIT_TEST</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;IRsend_test.h&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="unionAirwellProtocol.html">   27</a></span>&#160;<span class="keyword">union </span><a class="code" href="unionAirwellProtocol.html">AirwellProtocol</a>{</div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="unionAirwellProtocol.html#a984e1bba5afac9887c2ebb976a38d560">   28</a></span>&#160;  uint64_t <a class="code" href="unionAirwellProtocol.html#a984e1bba5afac9887c2ebb976a38d560">raw</a>;  <span class="comment">// The state of the IR remote in native IR code form.</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;  <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="unionAirwellProtocol.html#ac8190704f390caf41b76dc0ee3377056">   30</a></span>&#160;    uint64_t            :19;</div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="unionAirwellProtocol.html#a5a6bd2772f3b9b5898ea84cf272cdf87">   31</a></span>&#160;    uint64_t <a class="code" href="unionAirwellProtocol.html#a5a6bd2772f3b9b5898ea84cf272cdf87">Temp</a>       :4;</div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="unionAirwellProtocol.html#ab2a20785c417317ac37cd1b5ef795249">   32</a></span>&#160;    uint64_t            :5;</div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="unionAirwellProtocol.html#a7d38043e982231fb6a331d72f7407c10">   33</a></span>&#160;    uint64_t <a class="code" href="unionAirwellProtocol.html#a7d38043e982231fb6a331d72f7407c10">Fan</a>        :2;</div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="unionAirwellProtocol.html#a4a12b674ee9dcdbca592a1c5f3deb43e">   34</a></span>&#160;    uint64_t <a class="code" href="unionAirwellProtocol.html#a4a12b674ee9dcdbca592a1c5f3deb43e">Mode</a>       :3;</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="unionAirwellProtocol.html#a9a3893a0ec7811202697adeb60d89775">   35</a></span>&#160;    uint64_t <a class="code" href="unionAirwellProtocol.html#a9a3893a0ec7811202697adeb60d89775">PowerToggle</a>:1;</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="unionAirwellProtocol.html#a3ba38aea4ada26e1936478d737e2080a">   36</a></span>&#160;    uint64_t            :0;</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  };</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;};</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment">// Constants</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#ae907f815fab982317d7865525b0294d5">   41</a></span>&#160;<span class="keyword">const</span> uint64_t <a class="code" href="ir__Airwell_8h.html#ae907f815fab982317d7865525b0294d5">kAirwellKnownGoodState</a> = 0x140500002;  <span class="comment">// Mode Fan, Speed 1, 25C</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">// Temperature</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#ad8eef8b76485134c1c5278cae460e028">   43</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#ad8eef8b76485134c1c5278cae460e028">kAirwellMinTemp</a> = 16;  <span class="comment">// Celsius</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#adccc14f29d12b3c1e38a2e6a7b820b5f">   44</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#adccc14f29d12b3c1e38a2e6a7b820b5f">kAirwellMaxTemp</a> = 30;  <span class="comment">// Celsius</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">// Fan</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#ab105d4d9a63166f9fbf2dfb47a58a3b7">   46</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#ab105d4d9a63166f9fbf2dfb47a58a3b7">kAirwellFanLow</a> = 0;     <span class="comment">// 0b00</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#ac755543eac2fad7bbd1f2727e11aee21">   47</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#ac755543eac2fad7bbd1f2727e11aee21">kAirwellFanMedium</a> = 1;  <span class="comment">// 0b01</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#ab269b3942bee5458ec89a917d2ab0288">   48</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#ab269b3942bee5458ec89a917d2ab0288">kAirwellFanHigh</a> = 2;    <span class="comment">// 0b10</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#a40c8e262e6e6084c1d069bebb6a0fcb1">   49</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#a40c8e262e6e6084c1d069bebb6a0fcb1">kAirwellFanAuto</a> = 3;    <span class="comment">// 0b11</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">// Modes</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#ab82c81efca876184ab30f24347dfa6af">   51</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#ab82c81efca876184ab30f24347dfa6af">kAirwellCool</a> = 1;  <span class="comment">// 0b001</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#a0f6e36670946f015d4599ad626300ef7">   52</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#a0f6e36670946f015d4599ad626300ef7">kAirwellHeat</a> = 2;  <span class="comment">// 0b010</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#a5f3dbadb46874c672e093c5bbb59a97e">   53</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#a5f3dbadb46874c672e093c5bbb59a97e">kAirwellAuto</a> = 3;  <span class="comment">// 0b011</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#a1274093143c10ea0208fdfe7b4ebdb02">   54</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#a1274093143c10ea0208fdfe7b4ebdb02">kAirwellDry</a> = 4;   <span class="comment">// 0b100</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="ir__Airwell_8h.html#abcdf6dac387c3fa5bb2eeb0327250ac7">   55</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Airwell_8h.html#abcdf6dac387c3fa5bb2eeb0327250ac7">kAirwellFan</a> = 5;   <span class="comment">// 0b101</span></div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">// Classes</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classIRAirwellAc.html">   60</a></span>&#160;<span class="comment"></span><span class="keyword">class </span><a class="code" href="classIRAirwellAc.html">IRAirwellAc</a> {</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classIRAirwellAc.html#a38cfe20bff4522034b16d64df64750e8">IRAirwellAc</a>(<span class="keyword">const</span> uint16_t pin, <span class="keyword">const</span> <span class="keywordtype">bool</span> inverted = <span class="keyword">false</span>,</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                       <span class="keyword">const</span> <span class="keywordtype">bool</span> use_modulation = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRAirwellAc.html#a82591a86e031ef30b58f9565b6233953">stateReset</a>();</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#if SEND_AIRWELL</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRAirwellAc.html#a503a7879c5739041bb97ad80128287ba">send</a>(<span class="keyword">const</span> uint16_t repeat = <a class="code" href="IRremoteESP8266_8h.html#a669217ae5aa0baa159f7452f53551875">kAirwellMinRepeats</a>);</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classIRAirwellAc.html#ae7a80cbb217d35835961477caaea3218">   71</a></span>&#160;  int8_t <a class="code" href="classIRAirwellAc.html#ae7a80cbb217d35835961477caaea3218">calibrate</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> <a class="code" href="classIRAirwellAc.html#a57a01d6e65f6fa1127f8d3dc86ff8071">_irsend</a>.<a class="code" href="classIRsend.html#ad1776aa6c699f9eeca1eef9bb4fe355b">calibrate</a>(); }</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#endif  // SEND_AIRWELL</span></div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRAirwellAc.html#a09a142457af5e012405da80ddaef1dc0">begin</a>();</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRAirwellAc.html#a1b6aa498d9766b041d39a7b3d73653e7">setPowerToggle</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> on);</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRAirwellAc.html#a73ae0827f0235788d5d6149ea4de8eb0">getPowerToggle</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRAirwellAc.html#a30883e7b4f7933b6fa2258736995d295">setTemp</a>(<span class="keyword">const</span> uint8_t temp);</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;  uint8_t <a class="code" href="classIRAirwellAc.html#aee52deba26ba5b217704667d159d1110">getTemp</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRAirwellAc.html#a3b3acc1670d7057e7c36fc2bd0a71232">setFan</a>(<span class="keyword">const</span> uint8_t speed);</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;  uint8_t <a class="code" href="classIRAirwellAc.html#aa24f7ff64fcb1cea358f7b5288eb7aa1">getFan</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRAirwellAc.html#a3cbc12fee37b9b2b19aa5455ace9d46e">setMode</a>(<span class="keyword">const</span> uint8_t mode);</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  uint8_t <a class="code" href="classIRAirwellAc.html#a9a1d651c8b71703212207888ddb4be14">getMode</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;  uint64_t <a class="code" href="classIRAirwellAc.html#aec84bac505703ad872cd4b6391fbe748">getRaw</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRAirwellAc.html#a56e90d8b7e902be15c5db12be872d0fb">setRaw</a>(<span class="keyword">const</span> uint64_t state);</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;  <span class="keyword">static</span> uint8_t <a class="code" href="classIRAirwellAc.html#a20f9a804b2f8774165befc43d434ad84">convertMode</a>(<span class="keyword">const</span> <a class="code" href="namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f">stdAc::opmode_t</a> mode);</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;  <span class="keyword">static</span> uint8_t <a class="code" href="classIRAirwellAc.html#a44091f4d58b8078df1a93170cb9900d8">convertFan</a>(<span class="keyword">const</span> <a class="code" href="namespacestdAc.html#a8bb0dbf18fe69f639f4ac0b3ff133383">stdAc::fanspeed_t</a> speed);</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;  <span class="keyword">static</span> <a class="code" href="namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f">stdAc::opmode_t</a> <a class="code" href="classIRAirwellAc.html#ad2c717b7750e43894197ee8b292ba23b">toCommonMode</a>(<span class="keyword">const</span> uint8_t mode);</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  <span class="keyword">static</span> <a class="code" href="namespacestdAc.html#a8bb0dbf18fe69f639f4ac0b3ff133383">stdAc::fanspeed_t</a> <a class="code" href="classIRAirwellAc.html#a38a93fc115fbe4deb0a5ee82a913c166">toCommonFanSpeed</a>(<span class="keyword">const</span> uint8_t speed);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  <a class="code" href="structstdAc_1_1state__t.html">stdAc::state_t</a> <a class="code" href="classIRAirwellAc.html#a279b9cf59acf8462ea99ffcd7d08b919">toCommon</a>(<span class="keyword">const</span> <a class="code" href="structstdAc_1_1state__t.html">stdAc::state_t</a> *prev = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  <a class="code" href="IRremoteESP8266_8h.html#afbeda3fd1bdc8c37d01bdf9f5c8274ff">String</a> <a class="code" href="classIRAirwellAc.html#acbd6772f93e897308db4f606d1f56eac">toString</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#ifndef UNIT_TEST</span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classIRAirwellAc.html#a57a01d6e65f6fa1127f8d3dc86ff8071">   93</a></span>&#160;  <a class="code" href="classIRsend.html">IRsend</a> <a class="code" href="classIRAirwellAc.html#a57a01d6e65f6fa1127f8d3dc86ff8071">_irsend</a>;  </div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;  IRsendTest <a class="code" href="classIRAirwellAc.html#a57a01d6e65f6fa1127f8d3dc86ff8071">_irsend</a>;  </div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classIRAirwellAc.html#af5675d200cdc571911162ecf8c74fdc0">   99</a></span>&#160;  <a class="code" href="unionAirwellProtocol.html">AirwellProtocol</a> <a class="code" href="classIRAirwellAc.html#af5675d200cdc571911162ecf8c74fdc0">_</a>;</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;};</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#endif  // IR_AIRWELL_H_</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aIRremoteESP8266_8h_html_a669217ae5aa0baa159f7452f53551875"><div class="ttname"><a href="IRremoteESP8266_8h.html#a669217ae5aa0baa159f7452f53551875">kAirwellMinRepeats</a></div><div class="ttdeci">const uint16_t kAirwellMinRepeats</div><div class="ttdef"><b>Definition:</b> IRremoteESP8266.h:1151</div></div>
<div class="ttc" id="air__Airwell_8h_html_ab269b3942bee5458ec89a917d2ab0288"><div class="ttname"><a href="ir__Airwell_8h.html#ab269b3942bee5458ec89a917d2ab0288">kAirwellFanHigh</a></div><div class="ttdeci">const uint8_t kAirwellFanHigh</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:48</div></div>
<div class="ttc" id="aunionAirwellProtocol_html_a5a6bd2772f3b9b5898ea84cf272cdf87"><div class="ttname"><a href="unionAirwellProtocol.html#a5a6bd2772f3b9b5898ea84cf272cdf87">AirwellProtocol::Temp</a></div><div class="ttdeci">uint64_t Temp</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:31</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a503a7879c5739041bb97ad80128287ba"><div class="ttname"><a href="classIRAirwellAc.html#a503a7879c5739041bb97ad80128287ba">IRAirwellAc::send</a></div><div class="ttdeci">void send(const uint16_t repeat=kAirwellMinRepeats)</div><div class="ttdoc">Send the current internal state as an IR message.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:108</div></div>
<div class="ttc" id="aunionAirwellProtocol_html_a9a3893a0ec7811202697adeb60d89775"><div class="ttname"><a href="unionAirwellProtocol.html#a9a3893a0ec7811202697adeb60d89775">AirwellProtocol::PowerToggle</a></div><div class="ttdeci">uint64_t PowerToggle</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:35</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a30883e7b4f7933b6fa2258736995d295"><div class="ttname"><a href="classIRAirwellAc.html#a30883e7b4f7933b6fa2258736995d295">IRAirwellAc::setTemp</a></div><div class="ttdeci">void setTemp(const uint8_t temp)</div><div class="ttdoc">Set the temperature.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:225</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a57a01d6e65f6fa1127f8d3dc86ff8071"><div class="ttname"><a href="classIRAirwellAc.html#a57a01d6e65f6fa1127f8d3dc86ff8071">IRAirwellAc::_irsend</a></div><div class="ttdeci">IRsend _irsend</div><div class="ttdoc">Instance of the IR send class.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:93</div></div>
<div class="ttc" id="aunionAirwellProtocol_html"><div class="ttname"><a href="unionAirwellProtocol.html">AirwellProtocol</a></div><div class="ttdoc">Native representation of a Airwell A/C message.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:27</div></div>
<div class="ttc" id="anamespacestdAc_html_a8bb0dbf18fe69f639f4ac0b3ff133383"><div class="ttname"><a href="namespacestdAc.html#a8bb0dbf18fe69f639f4ac0b3ff133383">stdAc::fanspeed_t</a></div><div class="ttdeci">fanspeed_t</div><div class="ttdoc">Common A/C settings for Fan Speeds.</div><div class="ttdef"><b>Definition:</b> IRsend.h:61</div></div>
<div class="ttc" id="air__Airwell_8h_html_ab82c81efca876184ab30f24347dfa6af"><div class="ttname"><a href="ir__Airwell_8h.html#ab82c81efca876184ab30f24347dfa6af">kAirwellCool</a></div><div class="ttdeci">const uint8_t kAirwellCool</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:51</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a38cfe20bff4522034b16d64df64750e8"><div class="ttname"><a href="classIRAirwellAc.html#a38cfe20bff4522034b16d64df64750e8">IRAirwellAc::IRAirwellAc</a></div><div class="ttdeci">IRAirwellAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)</div><div class="ttdoc">Class constructor.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:85</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a279b9cf59acf8462ea99ffcd7d08b919"><div class="ttname"><a href="classIRAirwellAc.html#a279b9cf59acf8462ea99ffcd7d08b919">IRAirwellAc::toCommon</a></div><div class="ttdeci">stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const</div><div class="ttdoc">Convert the current internal state into its stdAc::state_t equivalent.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:240</div></div>
<div class="ttc" id="air__Airwell_8h_html_a0f6e36670946f015d4599ad626300ef7"><div class="ttname"><a href="ir__Airwell_8h.html#a0f6e36670946f015d4599ad626300ef7">kAirwellHeat</a></div><div class="ttdeci">const uint8_t kAirwellHeat</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:52</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a3cbc12fee37b9b2b19aa5455ace9d46e"><div class="ttname"><a href="classIRAirwellAc.html#a3cbc12fee37b9b2b19aa5455ace9d46e">IRAirwellAc::setMode</a></div><div class="ttdeci">void setMode(const uint8_t mode)</div><div class="ttdoc">Set the desired operation mode.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:138</div></div>
<div class="ttc" id="aIRsend_8h_html"><div class="ttname"><a href="IRsend_8h.html">IRsend.h</a></div></div>
<div class="ttc" id="air__Airwell_8h_html_ad8eef8b76485134c1c5278cae460e028"><div class="ttname"><a href="ir__Airwell_8h.html#ad8eef8b76485134c1c5278cae460e028">kAirwellMinTemp</a></div><div class="ttdeci">const uint8_t kAirwellMinTemp</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:43</div></div>
<div class="ttc" id="aclassIRsend_html"><div class="ttname"><a href="classIRsend.html">IRsend</a></div><div class="ttdoc">Class for sending all basic IR protocols.</div><div class="ttdef"><b>Definition:</b> IRsend.h:237</div></div>
<div class="ttc" id="air__Airwell_8h_html_a40c8e262e6e6084c1d069bebb6a0fcb1"><div class="ttname"><a href="ir__Airwell_8h.html#a40c8e262e6e6084c1d069bebb6a0fcb1">kAirwellFanAuto</a></div><div class="ttdeci">const uint8_t kAirwellFanAuto</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:49</div></div>
<div class="ttc" id="aclassIRsend_html_ad1776aa6c699f9eeca1eef9bb4fe355b"><div class="ttname"><a href="classIRsend.html#ad1776aa6c699f9eeca1eef9bb4fe355b">IRsend::calibrate</a></div><div class="ttdeci">int8_t calibrate(uint16_t hz=38000U)</div><div class="ttdoc">Calculate &amp; set any offsets to account for execution times during sending.</div><div class="ttdef"><b>Definition:</b> IRsend.cpp:207</div></div>
<div class="ttc" id="aunionAirwellProtocol_html_a984e1bba5afac9887c2ebb976a38d560"><div class="ttname"><a href="unionAirwellProtocol.html#a984e1bba5afac9887c2ebb976a38d560">AirwellProtocol::raw</a></div><div class="ttdeci">uint64_t raw</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:28</div></div>
<div class="ttc" id="air__Airwell_8h_html_abcdf6dac387c3fa5bb2eeb0327250ac7"><div class="ttname"><a href="ir__Airwell_8h.html#abcdf6dac387c3fa5bb2eeb0327250ac7">kAirwellFan</a></div><div class="ttdeci">const uint8_t kAirwellFan</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:55</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_aee52deba26ba5b217704667d159d1110"><div class="ttname"><a href="classIRAirwellAc.html#aee52deba26ba5b217704667d159d1110">IRAirwellAc::getTemp</a></div><div class="ttdeci">uint8_t getTemp() const</div><div class="ttdoc">Get the current temperature setting.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:233</div></div>
<div class="ttc" id="aIRremoteESP8266_8h_html_afbeda3fd1bdc8c37d01bdf9f5c8274ff"><div class="ttname"><a href="IRremoteESP8266_8h.html#afbeda3fd1bdc8c37d01bdf9f5c8274ff">String</a></div><div class="ttdeci">std::string String</div><div class="ttdef"><b>Definition:</b> IRremoteESP8266.h:1521</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_aec84bac505703ad872cd4b6391fbe748"><div class="ttname"><a href="classIRAirwellAc.html#aec84bac505703ad872cd4b6391fbe748">IRAirwellAc::getRaw</a></div><div class="ttdeci">uint64_t getRaw() const</div><div class="ttdoc">Get the raw state of the object, suitable to be sent with the appropriate IRsend object method.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:95</div></div>
<div class="ttc" id="aIRremoteESP8266_8h_html"><div class="ttname"><a href="IRremoteESP8266_8h.html">IRremoteESP8266.h</a></div></div>
<div class="ttc" id="air__Airwell_8h_html_ab105d4d9a63166f9fbf2dfb47a58a3b7"><div class="ttname"><a href="ir__Airwell_8h.html#ab105d4d9a63166f9fbf2dfb47a58a3b7">kAirwellFanLow</a></div><div class="ttdeci">const uint8_t kAirwellFanLow</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:46</div></div>
<div class="ttc" id="air__Airwell_8h_html_a5f3dbadb46874c672e093c5bbb59a97e"><div class="ttname"><a href="ir__Airwell_8h.html#a5f3dbadb46874c672e093c5bbb59a97e">kAirwellAuto</a></div><div class="ttdeci">const uint8_t kAirwellAuto</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:53</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_ae7a80cbb217d35835961477caaea3218"><div class="ttname"><a href="classIRAirwellAc.html#ae7a80cbb217d35835961477caaea3218">IRAirwellAc::calibrate</a></div><div class="ttdeci">int8_t calibrate(void)</div><div class="ttdoc">Run the calibration to calculate uSec timing offsets for this platform.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:71</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_aa24f7ff64fcb1cea358f7b5288eb7aa1"><div class="ttname"><a href="classIRAirwellAc.html#aa24f7ff64fcb1cea358f7b5288eb7aa1">IRAirwellAc::getFan</a></div><div class="ttdeci">uint8_t getFan() const</div><div class="ttdoc">Get the current fan speed setting.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:189</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a82591a86e031ef30b58f9565b6233953"><div class="ttname"><a href="classIRAirwellAc.html#a82591a86e031ef30b58f9565b6233953">IRAirwellAc::stateReset</a></div><div class="ttdeci">void stateReset()</div><div class="ttdoc">Reset the internals of the object to a known good state.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:114</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_af5675d200cdc571911162ecf8c74fdc0"><div class="ttname"><a href="classIRAirwellAc.html#af5675d200cdc571911162ecf8c74fdc0">IRAirwellAc::_</a></div><div class="ttdeci">AirwellProtocol _</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:99</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a3b3acc1670d7057e7c36fc2bd0a71232"><div class="ttname"><a href="classIRAirwellAc.html#a3b3acc1670d7057e7c36fc2bd0a71232">IRAirwellAc::setFan</a></div><div class="ttdeci">void setFan(const uint8_t speed)</div><div class="ttdoc">Set the speed of the fan.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:182</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a20f9a804b2f8774165befc43d434ad84"><div class="ttname"><a href="classIRAirwellAc.html#a20f9a804b2f8774165befc43d434ad84">IRAirwellAc::convertMode</a></div><div class="ttdeci">static uint8_t convertMode(const stdAc::opmode_t mode)</div><div class="ttdoc">Convert a stdAc::opmode_t enum into its native mode.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:156</div></div>
<div class="ttc" id="air__Airwell_8h_html_adccc14f29d12b3c1e38a2e6a7b820b5f"><div class="ttname"><a href="ir__Airwell_8h.html#adccc14f29d12b3c1e38a2e6a7b820b5f">kAirwellMaxTemp</a></div><div class="ttdeci">const uint8_t kAirwellMaxTemp</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:44</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_ad2c717b7750e43894197ee8b292ba23b"><div class="ttname"><a href="classIRAirwellAc.html#ad2c717b7750e43894197ee8b292ba23b">IRAirwellAc::toCommonMode</a></div><div class="ttdeci">static stdAc::opmode_t toCommonMode(const uint8_t mode)</div><div class="ttdoc">Convert a native mode into its stdAc equivalent.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:169</div></div>
<div class="ttc" id="aclassIRAirwellAc_html"><div class="ttname"><a href="classIRAirwellAc.html">IRAirwellAc</a></div><div class="ttdoc">Class for handling detailed Airwell A/C messages.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:60</div></div>
<div class="ttc" id="air__Airwell_8h_html_ae907f815fab982317d7865525b0294d5"><div class="ttname"><a href="ir__Airwell_8h.html#ae907f815fab982317d7865525b0294d5">kAirwellKnownGoodState</a></div><div class="ttdeci">const uint64_t kAirwellKnownGoodState</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:41</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a9a1d651c8b71703212207888ddb4be14"><div class="ttname"><a href="classIRAirwellAc.html#a9a1d651c8b71703212207888ddb4be14">IRAirwellAc::getMode</a></div><div class="ttdeci">uint8_t getMode() const</div><div class="ttdoc">Get the current operation mode setting.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:132</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a38a93fc115fbe4deb0a5ee82a913c166"><div class="ttname"><a href="classIRAirwellAc.html#a38a93fc115fbe4deb0a5ee82a913c166">IRAirwellAc::toCommonFanSpeed</a></div><div class="ttdeci">static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)</div><div class="ttdoc">Convert a native fan speed into its stdAc equivalent.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:214</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a44091f4d58b8078df1a93170cb9900d8"><div class="ttname"><a href="classIRAirwellAc.html#a44091f4d58b8078df1a93170cb9900d8">IRAirwellAc::convertFan</a></div><div class="ttdeci">static uint8_t convertFan(const stdAc::fanspeed_t speed)</div><div class="ttdoc">Convert a stdAc::fanspeed_t enum into it's native speed.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:196</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a1b6aa498d9766b041d39a7b3d73653e7"><div class="ttname"><a href="classIRAirwellAc.html#a1b6aa498d9766b041d39a7b3d73653e7">IRAirwellAc::setPowerToggle</a></div><div class="ttdeci">void setPowerToggle(const bool on)</div><div class="ttdoc">Turn on/off the Power Airwell setting.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:120</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a09a142457af5e012405da80ddaef1dc0"><div class="ttname"><a href="classIRAirwellAc.html#a09a142457af5e012405da80ddaef1dc0">IRAirwellAc::begin</a></div><div class="ttdeci">void begin()</div><div class="ttdoc">Set up hardware to be able to send a message.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:90</div></div>
<div class="ttc" id="aunionAirwellProtocol_html_a7d38043e982231fb6a331d72f7407c10"><div class="ttname"><a href="unionAirwellProtocol.html#a7d38043e982231fb6a331d72f7407c10">AirwellProtocol::Fan</a></div><div class="ttdeci">uint64_t Fan</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:33</div></div>
<div class="ttc" id="air__Airwell_8h_html_ac755543eac2fad7bbd1f2727e11aee21"><div class="ttname"><a href="ir__Airwell_8h.html#ac755543eac2fad7bbd1f2727e11aee21">kAirwellFanMedium</a></div><div class="ttdeci">const uint8_t kAirwellFanMedium</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:47</div></div>
<div class="ttc" id="aunionAirwellProtocol_html_a4a12b674ee9dcdbca592a1c5f3deb43e"><div class="ttname"><a href="unionAirwellProtocol.html#a4a12b674ee9dcdbca592a1c5f3deb43e">AirwellProtocol::Mode</a></div><div class="ttdeci">uint64_t Mode</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:34</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_acbd6772f93e897308db4f606d1f56eac"><div class="ttname"><a href="classIRAirwellAc.html#acbd6772f93e897308db4f606d1f56eac">IRAirwellAc::toString</a></div><div class="ttdeci">String toString() const</div><div class="ttdoc">Convert the current internal state into a human readable string.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:275</div></div>
<div class="ttc" id="astructstdAc_1_1state__t_html"><div class="ttname"><a href="structstdAc_1_1state__t.html">stdAc::state_t</a></div><div class="ttdoc">Structure to hold a common A/C state.</div><div class="ttdef"><b>Definition:</b> IRsend.h:114</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a73ae0827f0235788d5d6149ea4de8eb0"><div class="ttname"><a href="classIRAirwellAc.html#a73ae0827f0235788d5d6149ea4de8eb0">IRAirwellAc::getPowerToggle</a></div><div class="ttdeci">bool getPowerToggle() const</div><div class="ttdoc">Get the power toggle setting from the internal state.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:126</div></div>
<div class="ttc" id="air__Airwell_8h_html_a1274093143c10ea0208fdfe7b4ebdb02"><div class="ttname"><a href="ir__Airwell_8h.html#a1274093143c10ea0208fdfe7b4ebdb02">kAirwellDry</a></div><div class="ttdeci">const uint8_t kAirwellDry</div><div class="ttdef"><b>Definition:</b> ir_Airwell.h:54</div></div>
<div class="ttc" id="aclassIRAirwellAc_html_a56e90d8b7e902be15c5db12be872d0fb"><div class="ttname"><a href="classIRAirwellAc.html#a56e90d8b7e902be15c5db12be872d0fb">IRAirwellAc::setRaw</a></div><div class="ttdeci">void setRaw(const uint64_t state)</div><div class="ttdoc">Set the raw state of the object.</div><div class="ttdef"><b>Definition:</b> ir_Airwell.cpp:101</div></div>
<div class="ttc" id="anamespacestdAc_html_a99ad268c783486f9b3207cb78f48444f"><div class="ttname"><a href="namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f">stdAc::opmode_t</a></div><div class="ttdeci">opmode_t</div><div class="ttdoc">Common A/C settings for A/C operating modes.</div><div class="ttdef"><b>Definition:</b> IRsend.h:49</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
